A Heuristic for Global Code Motion
نویسندگان
چکیده
Programs that are not loop intensive and which have small basic blocks present a challenge to architectures that rely on instruction level parallelism to deliver high performance. This paper presents a heuristic for moving operations across basic block boundaries based on profile information gathered from previous executions of a program. Architectural support is required for executing these operations speculatively. Performance improvements on a heapsort routine are discussed for a Very Long Instruction Word (VLIW) machine model, using two different sets of operation latencies. Experiments were done both at the assembly code level and on the intermediate representation produced by the compiler. The results show a speedup of about two over the original code after the global code motion heuristic is applied.
منابع مشابه
Optimal and Heuristic Global Code Motion for Minimal Spilling
The interaction of register allocation and instruction scheduling is a well-studied problem: Certain ways of arranging instructions within basic blocks reduce overlaps of live ranges, leading to the insertion of less costly spill code. However, there is little previous research on the extension of this problem to global code motion, i .e., the motion of instructions between blocks. We present a...
متن کاملGROUND MOTION CLUSTERING BY A HYBRID K-MEANS AND COLLIDING BODIES OPTIMIZATION
Stochastic nature of earthquake has raised a challenge for engineers to choose which record for their analyses. Clustering is offered as a solution for such a data mining problem to automatically distinguish between ground motion records based on similarities in the corresponding seismic attributes. The present work formulates an optimization problem to seek for the best clustering measures. In...
متن کاملOptimal Global Scheduling for ItaniumTM Processor Family
Global scheduling with integrated decisions about speculation and predication for ItaniumTM Processor Family (IPF) is widely known as a complex and challenging task. Compilers find it especially difficult to use the proper amount of speculation and code motion, as both techniques increase the demand for execution resources. If applied too conservatively, free execution slots are wasted, contrar...
متن کاملA Meta-heuristic Algorithm for Global Numerical Optimization Problems inspired by Vortex in fluid physics
One of the most important issues in engineering is to find the optimal global points of the functions used. It is not easy to find such a point in some functions due to the reasons such as large number of dimensions or inability to derive them from the function. Also in engineering modeling, we do not have the relationships of many functions, but we can input and output them as a black box. The...
متن کاملOptimal Global Instruction Scheduling for the Itanium
On the Itanium 2 processor, effective global instruction scheduling is crucial to high performance. At the same time, it poses a challenge to the compiler: This code generation subtask involves strongly interdependent decisions and complex trade-offs that are difficult to cope with for heuristics. We tackle this NP-complete problem with integer linear programming (ILP), a search-based method th...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1995